過去 19 天,我們從 0 開始,一步步完成了:
👉 今天的目標是:
MLflow 的價值在於四大功能:
Tracking (實驗追蹤)
mlflow.start_run()
紀錄每次訓練Projects (封裝環境)
MLproject
+ conda.yaml
封裝環境,保證重現性Model Registry (模型註冊)
Model Serving (部署)
mlflow models serve
把 Registry 裡的模型直接變成 REST APIPOST /invocations
→ 接收請求,回傳推薦結果 ┌──────────────────┐
│ Data Pipeline │
│ (ratings, anime) │
└─────────┬────────┘
│
┌─────────▼──────────┐
│ Model Training │
│ (Popular, TF-IDF…) │
└─────────┬──────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌────────▼───────┐ ┌──────▼────────┐ ┌─────▼─────────┐
│ Tracking │ │ Model Registry │ │ Artifacts │
│ params, metrics│ │ v1, v2, Stage │ │ top10.json │
└────────┬───────┘ └──────┬────────┘ └─────┬─────────┘
│ │ │
│ ▼ │
│ ┌───────────────┐ │
│ │ Serving (API) │ │
│ │ /invocations │ │
│ └───────┬───────┘ │
│ │ │
└─────────────────┼────────────────┘
│
┌─────────▼─────────┐
│ Client (UI/API) │
│ FastAPI, Streamlit│
└────────────────────┘
資料科學家:專注於訓練與實驗
mlflow.log_param
, mlflow.log_metric
MLOps 工程師:管理版本與部署
MlflowClient().transition_model_version_stage
應用工程師:直接使用 API 提供推薦
mlflow models serve
→ /invocations
👉 這樣讓 從實驗 → 部署 → 應用 成為一條清晰的流水線。
Day 21 開始,我們會用 FastAPI:
把 MLflow Serve 的 API 包裝成更好用的接口
/recommend
→ 輸入動畫名稱,輸出推薦清單/log-ab-event
→ 紀錄使用者點擊,用於 AB 測試這樣就能讓推薦系統成為 企業級應用,而不是只停留在 MLflow UI。